// 给定一个数组，找出其中相同元素个数最多的元素

// 思路：利用哈希表，记录相同元素出现的次数，最后统计出现最多的元素
// 时间复杂度：O(n)
// 空间复杂度：O(n)

function majorityElement(arr) {
    let map = new Map
    for (let i = 0; i < arr.length; i++) {
        if (map.has(arr[i])) {
            map.set(arr[i], map.get(arr[i]) + 1)
        } else {
            map.set(arr[i], 1)
        }
    }
    let max = 0
    let target
    for (const [key, val] of map) {
        if (val > max) {
            max = val
            target = key
        }
    }
    return target
}

let arr = [0, 0, 0, 1, 1, 2, 2, 2, 2, 4, 5]
console.log(majorityElement(arr));